首页> 外文OA文献 >Improving testing performance by dynamic prioritization of tests based on method invocation orders
【2h】

Improving testing performance by dynamic prioritization of tests based on method invocation orders

机译:通过根据方法调用顺序对测试进行动态优先级排序来提高测试性能

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

We present a dynamic test prioritization technique with the objective to speed up uncovering updates to existing software and therefore,increase the rate at which faulty software can be debugged. Our technique utilizes two types of data---the results of executing tests on prior version of the software; and the results of executing tests on the new version which determines the next test to be executed.The contributions of the thesis are two-fold: understanding what constitutes an effective ordering of tests and developing an algorithm that can and efficiently generate such order.At its cores, the proposed dynamic ordering technique relies on two basic conjectures. Firstly, tests that are closely related are likely to uncover similar updates/faults and tests that are not related are likely to widen the search for updates/faults. In other words, if a test uncovers updates in a software, i.e., its execution behavior (in terms coverage) differs considerably between prior and current versionof the software, then selecting a test closely related to it is likely to be beneficial. Similarly, if a test does not uncover updates in a software, it would be good to select an unrelated test to execute next to increase the chances of better coverage. The relationship between tests are determined from the execution of tests while testing prior versions of the software. The second conjecture is that selecting tests in the above order will speed up uncovering bugs in the software.We develop a baseline ordering using complete knowledge about the results of executing tests in two different versions of the software. The baseline ordering arranges the tests in descending order in terms of amount of changes the tests uncover between the prior and new version of the software. We evaluate the effectiveness of this ordering (i.e., the validity of the conjectures) by computing the rate at which the order can identify (seeded) bugs in a software--the measurement is referred to as APFD. The baseline order produces high APFD values indicating that the order is indeed effective. However, note that the baseline ordering can be only obtained if the tests are already executed in two versions of the software; the challenge is to identify the ordering before executing the tests on the version being tested.We have developed an algorithm that estimates the baseline ordering. We evaluate the quality of the estimates using a rank relationship measure refer to as Order-Relationship Measure (ORM). We find that the ORM is high when call-sequences resulting from executing tests are used for estimation. We also find that low ORM implies low APFD values for the estimate. We have evaluated our algorithm on two non-trivial software repositories. We have investigated the role of two important parameters (thresholds capturing the closenessrelationship between tests) in identifying high quality (high APFD) ordering and outlines how these parameters can be statically determined based on executing tests on the prior versions of the software. Finally, we have showed that the application of our algorithm in generating the test orders dynamically has close to 3% overhead.
机译:我们提出一种动态测试优先级排序技术,其目的是加快发现现有软件的更新的速度,从而提高可以调试故障软件的速度。我们的技术利用两种类型的数据-在软件的先前版本上执行测试的结果;论文的贡献有两个方面:了解什么构成有效的测试排序,以及开发一种可以高效生成该排序的算法。作为其核心,提出的动态排序技术依赖于两个基本猜想。首先,密切相关的测试可能会发现相似的更新/故障,而不相关的测试则可能会扩大对更新/故障的搜索范围。换句话说,如果测试发现了软件中的更新,即在软件的先前版本和当前版本之间其执行行为(就覆盖率而言)相差很大,那么选择与其密切相关的测试可能是有益的。同样,如果测试未发现软件中的更新,则最好选择一个不相关的测试然后执行以增加更好的覆盖率。测试之间的关系是通过在测试软件的先前版本时执行测试来确定的。第二个猜想是,按上述顺序选择测试将加快发现软件中的错误的速度。我们使用有关在两种不同版本的软件中执行测试结果的完整知识来开发基线排序。基线顺序按照测试在软件的先前版本和新版本之间发现的更改量,以降序排列测试。我们通过计算顺序可以识别(播种)软件中的错误的比率来评估此顺序的有效性(即推测的有效性)-测量称为APFD。基线订单会产生较高的APFD值,表明该订单确实有效。但是,请注意,只有在两个版本的软件中都已经执行过测试的情况下,才能获得基线排序。我们面临的挑战是在对要测试的版本执行测试之前确定顺序。我们开发了一种算法,用于估计基准顺序。我们使用称为订单关系度量(ORM)的等级关系度量来评估估计的质量。当执行测试产生的调用序列用于估计时,我们发现ORM很高。我们还发现,较低的ORM意味着估算的APFD值较低。我们在两个非常重要的软件存储库上评估了我们的算法。我们调查了两个重要参数(捕获测试之间的紧密度关系的阈值)在识别高质量(高APFD)排序中的作用,并概述了如何基于在该软件的先前版本上执行测试来静态确定这些参数。最后,我们证明了算法在动态生成测试订单中的应用开销接近3%。

著录项

  • 作者

    Balasubramanian, Sriram;

  • 作者单位
  • 年度 2017
  • 总页数
  • 原文格式 PDF
  • 正文语种 en
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号